import Vue from 'vue'
import App from './App.vue'
//引入路由器
import router from '@/router'
// 引入三级联动组件  全局组件
import TypeNav from '@/components/TypeNav'
//轮播图 全局组件
import Carousel from '@/components/Carousel'
// 分页器 全局组件
import Pagination from '@/components/Pagination'
// 引入懒加载
import VueLazyload from 'vue-lazyload'

//引入仓库Store
import store from '@/store'
Vue.config.productionTip = false
// 引入mockServer.js
import '@/mock/mockServer';
//引入swiper的样式
import 'swiper/css/swiper.css'

//引入统一API接口函数
import * as API from '@/api'
// 按需引入element-ui
import { MessageBox } from 'element-ui';
// 引用自定义插件 表单校验
import '@/plugins/validate'
// 全局组件   
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination)

// element - ui 可以挂载到原型上 使用 相当于事件总线
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
import ljz from '@/assets/logo.png'
// 使用懒加载
Vue.use(VueLazyload, {
  //懒加载默认图片
  loading: ljz
});



new Vue({
  render: h => h(App),
  //注册全局事件总线 $bus
  beforeCreate() {
    Vue.prototype.$bus = this;
    Vue.prototype.$API = API;
  },
  //注册路由器 :当这里书写router 时 组件身上就拥有$route 和$router属性
  router,
  //注册仓库: 组件身上会多一个属性 $store
  store
}).$mount('#app')
